home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 12 (1982-08)(Softdisk)(Side A).zip / Softdisk Magazette Volume 1, No. 12 (1982-08)(Softdisk)(Side A).do / CALC-MAN.bas < prev    next >
BASIC Source File  |  1996-12-24  |  14KB  |  339 lines

  1. 2  REM  CALC-MAN                           BY DAN TOBIAS
  2. 5  TEXT 
  3. 10  GOSUB 8000
  4. 20 X = K5:Y = K9
  5. 25 ST = K0
  6. 30 BN = K0:K = K0:L = K3:SC = K0
  7. 40  GOSUB 4000: GOSUB 5000: GOSUB 3000: GOSUB 2000
  8. 110  GOSUB 400: IF M% >K0  THEN M% = M% -K1: IF M% = K0  THEN  GOSUB 2500
  9. 120  GOTO 110
  10. 400  REM  INPUT
  11. 410  FOR KO = K1 TO K5
  12. 420 I =  PEEK(KI)
  13. 430  IF I <KU  THEN 480
  14. 431  POKE  -16368,K0
  15. 432  IF M% >K0  THEN 440
  16. 435  VTAB K2: HTAB K1: INVERSE : PRINT "                                     "
  17. 440  REM 
  18. 445 OX = X:OY = Y
  19. 450  IF I = (KA)  THEN D = D +K1: IF D < >K1  THEN D = K0
  20. 452  IF I = (KA)  THEN  GOSUB 2000
  21. 455  IF I = KB  THEN E =  -K1
  22. 460  IF I = KC  THEN E = K1
  23. 465  IF I = KB  OR I = KC  THEN  GOSUB 600
  24. 470  IF I < >KA  AND I < >KB  AND I < >KC  THEN  PRINT "<CTRL-G>";
  25. 475  IF I = (KA)  THEN 420
  26. 477 KO = KO +KD
  27. 480  NEXT 
  28. 482  GOSUB 800
  29. 485  GOSUB 2000
  30. 490  RETURN 
  31. 500  REM  SOUND
  32. 505  IF N%(X,Y) >KE  THEN  POKE MT,110: POKE ML,100: CALL MR: RETURN 
  33. 510 J =  PEEK(S) - PEEK(S)
  34. 520  RETURN 
  35. 600  REM  MOVE
  36. 610  IF D = K0  THEN X = X +E
  37. 620  IF D = K1  THEN Y = Y +E
  38. 630  IF X <K1  OR X >K9  OR Y <K1  OR Y >KW  THEN  GOSUB 700:X = OX:Y = OY: RETURN 
  39. 640  IF N%(X,Y) =  -999  THEN  GOSUB 700:X = OX:Y = OY: RETURN 
  40. 650  VTAB OY +K4: HTAB OX *K4: NORMAL : PRINT "    ";
  41. 660  GOSUB 2000
  42. 670  RETURN 
  43. 700  REM  OUT OF BOUNDS SOUND
  44. 710  FOR A = K1 TO 15
  45. 720 J =  PEEK(S): NEXT 
  46. 790  RETURN 
  47. 800  REM  MOVE MONSTER
  48. 810 AA = AA +K1: IF AA >KW  THEN AA = K1
  49. 812 A = MN%(AA): IF M%(A,K0) <K0  THEN 890
  50. 815 XD = K0:YD = K0:NN = K0
  51. 817  IF  RND(K1) <KH  THEN 825
  52. 820 XD =  SGN(X -M%(A,K0))
  53. 825  IF XD = K0  THEN YD =  SGN(Y -M%(A,K1)): IF YD = K0  THEN 820
  54. 826  IF M% >K0  THEN XD =  -XD:YD =  -YD
  55. 827  IF M%(A,K0) +XD >K9  OR M%(A,K0) +XD <K1  OR M%(A,K1) +YD >KW  OR M%(A,K1) +YD <K1  THEN 835
  56. 828  IF ML%(M%(A,K0) +XD,M%(A,K1) +YD) = 1  THEN  RETURN 
  57. 830  IF N%(M%(A,K0) +XD,M%(A,K1) +YD) < > -999  THEN 870
  58. 835 NN = NN +K1
  59. 840  IF NN = K1  OR NN = K3  THEN XD =  -XD:YD =  -YD: GOTO 827
  60. 845 C = XD:XD = YD:YD = C: GOTO 827
  61. 870  HTAB M%(A,K0) *K4: VTAB M%(A,K1) +K4:C = N%(M%(A,K0),M%(A,K1))
  62. 872  NORMAL 
  63. 873 ML%(M%(A,K0),M%(A,K1)) = 0
  64. 874  IF C = K0  THEN  PRINT "    ";
  65. 875  IF C > -KF  THEN  PRINT C;
  66. 876  IF C >KE  AND C <1000  THEN  PRINT " "C;
  67. 877  IF C >K0  AND C <100  THEN  PRINT " "C; LEFT$("     ",K3 - LEN( STR$(C)));
  68. 880 M%(A,K0) = M%(A,K0) +XD:M%(A,K1) = M%(A,K1) +YD
  69. 882 ML%(M%(A,K0),M%(A,K1)) = 1
  70. 885  HTAB M%(A,K0) *K4: VTAB M%(A,K1) +K4: PRINT " ";: FLASH : PRINT "-"A;: NORMAL : PRINT " ";
  71. 890  RETURN 
  72. 2000  REM  PLOT
  73. 2010  IF ML%(X,Y) = 1  THEN  GOSUB 9500
  74. 2030  IF N%(X,Y) = 50  THEN M% = 31 -BN: IF M% >K0  THEN SN = 100: POKE MT,75: POKE ML,100: CALL MR
  75. 2040  IF M% >K0  THEN  INVERSE : IF M% <11  THEN  FLASH 
  76. 2050  IF M% >K0  THEN  VTAB K2: HTAB 14: PRINT "POWER MODE"
  77. 2060  IF N%(X,Y) >K0  THEN  GOSUB 500:SC = SC +N%(X,Y):N%(X,Y) = K0:B% = B% -K1: IF B% = K0  THEN 9000
  78. 2070  VTAB K1: HTAB K1
  79. 2080  INVERSE :I$ =  MID$ (AL$,X,K1) + STR$(Y)
  80. 2090 I$ = I$ + LEFT$("                                        ",38 - LEN(I$))
  81. 2100  PRINT I$;"C";
  82. 2110  IF D = K0  THEN  PRINT "-"
  83. 2120  IF D = K1  THEN  PRINT "!"
  84. 2130  NORMAL 
  85. 2140  VTAB K3: HTAB 8: PRINT SC: INVERSE 
  86. 2150  VTAB Y +K4: HTAB X *K4
  87. 2160  PRINT "    ";
  88. 2170  RETURN 
  89. 2500  VTAB K2: HTAB K1: INVERSE : PRINT "                                      "
  90. 2510  FOR A = K1 TO K4
  91. 2520  IF M%(A,K0) >K0  THEN 2560
  92. 2530 M%(A,K0) = OM%(A,K0):M%(A,K1) = OM%(A,K1)
  93. 2532  IF ML%(M%(A,K0),M%(A,K1)) = 1  THEN M%(A,K1) = M%(A,K1) +1: GOTO 2532
  94. 2535 ML%(M%(A,K0),M%(A,K1)) = 1
  95. 2540  NORMAL 
  96. 2550  HTAB M%(A,K0) *K4: VTAB M%(A,K1) +4: PRINT " -"A" ";
  97. 2560  NEXT : RETURN 
  98. 3000  REM  PLOT LOCATIONS
  99. 3010  NORMAL 
  100. 3020  FOR B = K1 TO KW
  101. 3030  VTAB B +K4
  102. 3040  FOR A = K1 TO K9
  103. 3050  IF N%(A,B) = K0  THEN 3090
  104. 3060  HTAB A *K4 +K1
  105. 3070  IF N%(A,B) =  -999  THEN  HTAB  POS(K0): PRINT "----";: GOTO 3090
  106. 3075  IF N%(A,B) >999  THEN  HTAB  POS(K0)
  107. 3080  PRINT N%(A,B);
  108. 3090  NEXT A,B
  109. 3100  NORMAL 
  110. 3110  FOR A = K1 TO K4
  111. 3120  IF M%(A,K0) < = K0  THEN 3150]
  112. 3130  HTAB M%(A,K0) *K4: VTAB M%(A,K1) +4
  113. 3140  PRINT " -"A" ";
  114. 3150  NEXT 
  115. 3160  RETURN 
  116. 4000  REM  INIT
  117. 4005 BN = BN +1
  118. 4010  RESTORE 
  119. 4020  FOR B = 1 TO 20: FOR A = 1 TO 9
  120. 4030  READ N%(A,B)
  121. 4035 ML%(A,B) = 0
  122. 4040  NEXT : NEXT 
  123. 4050 N%(5,12) = BN *100
  124. 4055  IF N%(5,12) >9999  THEN N%(5,12) = 9999
  125. 4060  FOR A = 1 TO 4: FOR B = 0 TO 1: READ OM%(A,B):M%(A,B) = OM%(A,B): NEXT 
  126. 4065 ML%(OM%(A,0),OM%(A,1)) = 1
  127. 4070  NEXT 
  128. 4080  FOR A = 1 TO 20: READ MN%(A): NEXT 
  129. 4085 B% = 103
  130. 4090  RETURN 
  131. 5000  REM  DRAW FIELD
  132. 5010  HOME 
  133. 5020  INVERSE 
  134. 5030  PRINT "                                      C                                       ";
  135. 5040  IF ST = K0  THEN  HTAB K1: VTAB K2: PRINT "(C) 1492, 1776 SOFTWEAR ARTS & CRAFTS ";:ST = K1
  136. 5050  NORMAL : PRINT "0";L;"SCORE:"; TAB( 21);"HI SCORE: ";HS(0,1)
  137. 5060  INVERSE : PRINT "    A   B   C   D   E   F   G   H   I  "
  138. 5070  FOR A = K1 TO 19
  139. 5080  PRINT  LEFT$("    ",K3 - LEN( STR$(A)));A
  140. 5090  NEXT 
  141. 5100  PRINT " 20";
  142. 5110  NORMAL 
  143. 5120  RETURN 
  144. 8000  REM  START
  145. 8010  HOME : VTAB 6
  146. 8020  PRINT "THE AUTHOR OF PLANET OF THE ROBOTS AND  SMURK NOW GOES TOTALLY INSANE, WITH..."
  147. 8030  PRINT 
  148. 8040  PRINT "           C A L C - M A N"
  149. 8050  PRINT 
  150. 8060  PRINT "BY DANIEL TOBIAS-----------MARCH, 1982"
  151. 8061  PRINT : PRINT "             VERSION 1.3"
  152. 8062  PRINT : PRINT "COPYRIGHT (C) 1982.  PERMISSION IS      GRANTED TO COPY IN CONJUNCTION WITH     SOFTDISK MAGAZETTE.  ALL RIGHTS TO NAME AND CONCEPT OF PROGRAM ARE RESERVED."
  153. 8070  PRINT : PRINT "INSTRUCTIONS?  (Y/N) ";: GET I$
  154. 8080  IF I$ < >"Y"  THEN 8270
  155. 8090  HOME : PRINT 
  156. 8100  PRINT "THIS PROGRAM IS THE ANSWER TO THE AGE   OLD RIDDLE:   WHAT DO YOU GET WHEN YOU  CROSS THE MOST POPULAR ARCADE GAME EVER"
  157. 8110  PRINT "WITH THE MOST POPULAR PIECE OF BUSINESS SOFTWARE?"
  158. 8120  PRINT : PRINT "I'M SURE YOU'RE DYING TO SEE WHAT THE   ANSWER IS, SO I WON'T KEEP YOU TOO LONG.YOU MOVE THE CURSOR BACK AND FORTH"
  159. 8130  PRINT "WITH THE ARROWS.  TO SWITCH FROM GOING  BACK AND FORTH TO GOING UP AND DOWN,    HIT THE SPACE BAR.  HIT IT AGAIN TO GO  BACK TO BACK AND FORTH."
  160. 8140  PRINT : PRINT "THE NEGATIVE NUMBERS ARE CHASING YOU,   BUT AFTER YOU LAND ON A '50' YOU CAN    EAT THEM FOR A WHILE."
  161. 8160  PRINT : PRINT "YOU FIGURE OUT THE REST OF THE RULES    YOURSELF!  I DON'T HAVE TIME TO WASTE   EXPLAINING THEM TO YOU.": PRINT 
  162. 8170  PRINT "HIT ANY KEY TO CONTINUE. ";: GET I$
  163. 8180  HOME : PRINT 
  164. 8190  PRINT "THE TOP 10 HIGH SCORES FOR THE CURRENT  RUN ARE KEPT, ALONG WITH A NAME OF UP   TO 16 CHARACTERS.": PRINT : PRINT "IN ADDITION, AN ALL-TIME TOP 10 IS KEPT"
  165. 8200  PRINT "ON DISK.  IF THERE IS NO HIGH-SCORE FILEON THE DISK, ONE WILL BE CREATED BY THE PROGRAM.": PRINT 
  166. 8210  PRINT "PLEASE MAKE SURE THERE IS A DISK IN THE DRIVE, AND THAT IT IS NOT WRITE-        PROTECTED."
  167. 8220  PRINT : PRINT "DO NOT EXIT THE PROGRAM BY HITTING      'RESET' OR 'CTRL-C', AS THE HIGH SCORES"
  168. 8225  PRINT "WOULD NOT BE SAVED.  EXIT ONLY IN THE   WAYS PROVIDED BY THE PROGRAM."
  169. 8230  PRINT 
  170. 8240  PRINT "HIT ANY KEY TO BEGIN. ";: GET I$
  171. 8270  HOME : PRINT : INPUT "ENTER TODAY'S DATE. (MM/DD/YY) ";SD$
  172. 8280  HOME : PRINT "CM"
  173. 8290 D$ =  CHR$(4)
  174. 8300  DIM N%(9,20)
  175. 8305  DIM ML%(9,20)
  176. 8310  DIM M%(4,1)
  177. 8320  DIM MI%(4,1)
  178. 8330  DIM MN%(20),HS(1,10),SN$(1,10),SD$(1,10)
  179. 8390 S =  -16336
  180. 8410 KI =  -16384
  181. 8420 K0 = 0:K1 = 1:K2 = 2
  182. 8430 K9 = 9:KW = 20
  183. 8435 K5 = 5
  184. 8440 KH = .5:K3 = 3:K4 = 4
  185. 8442 KU = 128:KR% =  -16368:KA = 160:KB = 136:KC = 149:KD = 10:KE = 99:KF =  -999
  186. 8450 AL$ = "ABCDEFGHI"
  187. 8480  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,4: POKE 776,198: POKE 777,7: POKE 778,240
  188. 8490  POKE 779,8: POKE 780,202: POKE 781,208: POKE 782,246: POKE 783,166: POKE 784,6: POKE 785,76: POKE 786,2: POKE 787,3: POKE 788,96
  189. 8500  POKE 789,104: POKE 790,168: POKE 791,104: POKE 792,166: POKE 793,223: POKE 794,154: POKE 795,72: POKE 796,152: POKE 797,72: POKE 798,96
  190. 8510 MR = 770:MT = 6:ML = 7
  191. 8540  GOSUB 30000
  192. 8550  RETURN 
  193. 9000  REM  NEW BOARD
  194. 9010  GOSUB 5000
  195. 9020 X = 5:Y = 9:B% = 103
  196. 9030 D = 0
  197. 9040 M% = 0
  198. 9050  GOSUB 4000
  199. 9060  GOSUB 2000: GOSUB 3000
  200. 9070  POKE  -16368,0
  201. 9080  RETURN 
  202. 9500  REM  MONSTER
  203. 9503 A = 1
  204. 9505  IF M%(A,0) = X  AND M%(A,1) = Y  THEN 9510
  205. 9507 A = A +1: IF A <5  THEN 9505
  206. 9508  TEXT : NORMAL : PRINT "?STUPID ERROR IN 9508<CTRL-G>": END 
  207. 9510  IF M% >0  THEN 9620
  208. 9520  NORMAL : HTAB 40: VTAB 2: PRINT L -1;
  209. 9530  INVERSE 
  210. 9540  HTAB 1: VTAB 2: PRINT "IT GOT YOU!                           "
  211. 9545  POKE MT,240: POKE ML,255: CALL MR
  212. 9550  FOR B = 1 TO 500: NEXT 
  213. 9560  POKE  -16368,0
  214. 9570 L = L -1: IF L = 0  THEN 9700
  215. 9580 X = 5:Y = 9:D = 0
  216. 9590  FOR A = 1 TO 4:ML%(M%(A,0),M%(A,1)) = 0
  217. 9600 M%(A,0) = OM%(A,0):M%(A,1) = OM%(A,1):ML%(M%(A,0),M%(A,1)) = 1: NEXT : GOSUB 5000: GOSUB 2000: GOSUB 3000
  218. 9610  RETURN 
  219. 9620  REM 
  220. 9630 SN = SN *2
  221. 9640  HTAB 1: VTAB 2: INVERSE : PRINT SN
  222. 9650 SC = SC +SN
  223. 9655 ML%(M%(A,0),M%(A,1)) = 0
  224. 9660 M%(A,0) =  -1:M%(A,1) =  -1
  225. 9665  GOSUB 2000
  226. 9667  POKE MT,100: POKE ML,40: CALL MR: POKE MT,50: POKE ML,80: CALL MR
  227. 9670  RETURN 
  228. 9700  REM  END
  229. 9702  ONERR  GOTO 9704
  230. 9703  POP : GOTO 9703
  231. 9704  CALL 789: POKE 216,0
  232. 9705  GOSUB 31000
  233. 9707  INVERSE 
  234. 9710  HTAB 1: VTAB 2: PRINT "GAME OVER. P=PLAY Q=QUIT H=HI SCORES"
  235. 9715  NORMAL 
  236. 9720 I =  PEEK( -16384): IF I <128  THEN 9720
  237. 9730  GET I$: IF I$ = "P"  THEN  HOME : PRINT "CM": GOTO 20
  238. 9740  IF I$ = "Q"  THEN 33000
  239. 9745  IF I$ = "H"  THEN 32000
  240. 9750  PRINT "<CTRL-G>";: GOTO 9720
  241. 20000  REM  DATA
  242. 20010  DATA 10,10,10,10,-999,10,10,10,10
  243. 20020  DATA 50,-999,-999,10,-999,10,-999,-999,50
  244. 20030  DATA 10,-999,-999,10,-999,10,-999,-999,10
  245. 20040  DATA 10,-999,-999,10,-999,10,-999,-999,10
  246. 20050  DATA 10,10,10,10,10,10,10,10,10
  247. 20060  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  248. 20070  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  249. 20080  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  250. 20090  DATA 10,10,10,10,0,10,10,10,10
  251. 20100  DATA -999,-999,10,-999,-999,-999,10,-999,-999
  252. 20110  DATA -999,-999,10,-999,-999,-999,10,-999,-999
  253. 20120  DATA 10,10,10,10,10,10,10,10,10
  254. 20130  DATA 10,-999,-999,10,-999,10,-999,-999,10
  255. 20140  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  256. 20150  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  257. 20160  DATA 10,10,10,10,10,10,10,10,10
  258. 20170  DATA 10,-999,-999,10,-999,10,-999,-999,10
  259. 20180  DATA 10,-999,-999,10,-999,10,-999,-999,10 
  260. 20190  DATA 10,50,-999,10,-999,10,-999,50,10
  261. 20200  DATA -999,10,10,10,-999,10,10,10,-999
  262. 20210  REM  MONSTERS
  263. 20220  DATA 1,14,9,14,4,1,6,1
  264. 20230  DATA 1,1,3,1,2,3,1,4,1,2,3,2,4,1,2,1,3,4,1,2 
  265. 30000  REM  HI SCORE INIT
  266. 30010  ONERR  GOTO 30100
  267. 30020  PRINT : PRINT D$"OPEN CALC-MAN.HI.SCORES": PRINT D$"READ CALC-MAN.HI.SCORES"
  268. 30030  FOR A = 1 TO 10
  269. 30040  INPUT HS(0,A): INPUT SN$(0,A): INPUT SD$(0,A)
  270. 30050  NEXT A
  271. 30060  PRINT D$"CLOSE": POKE 216,0: RETURN 
  272. 30100  CALL 789
  273. 30110  PRINT D$"CLOSE": POKE 216,0
  274. 30120  GOTO 20
  275. 31000  REM  UPDATE HI SCORES
  276. 31005 XX = 0
  277. 31010  FOR A = 0 TO 1
  278. 31020 B = 1
  279. 31030  IF SC >HS(A,B)  THEN  GOSUB 31500: GOTO 31100
  280. 31040 B = B +1: IF B <11  THEN 31030
  281. 31100  NEXT A: RETURN 
  282. 31500  REM 
  283. 31503  IF XX = 1  THEN 31540
  284. 31506  IF A = 0  THEN XX = 1
  285. 31510  VTAB 2: HTAB 1: INVERSE : PRINT "YOUR SCORE IS IN THE TOP TEN!        <CTRL-G><CTRL-G><CTRL-G><CTRL-G><CTRL-G>"
  286. 31520  FOR K = 1 TO 500: NEXT : VTAB 2: HTAB 1: INVERSE : PRINT "ENTER YOUR NAME.  (UP TO 16 LETTERS)"
  287. 31530  VTAB 3: HTAB 1: NORMAL : CALL  -868: INPUT "";SN$
  288. 31532  IF  LEN(SN$) >16  THEN SN$ =  LEFT$(SN$,16)
  289. 31535  VTAB 3: HTAB 1: PRINT "SCORE: ";SC;: CALL  -868
  290. 31537  PRINT  TAB( 21);"HI SCORE: ";: IF SC > = HS(0,1)  THEN  PRINT SC
  291. 31538  IF SC <HS(0,1)  THEN  PRINT HS(0,1)
  292. 31540  IF B = 10  THEN HS(A,B) = SC:SN$(A,B) = SN$:SD$(A,B) = SD$: RETURN 
  293. 31550  FOR C = 9 TO B  STEP  -1
  294. 31560 HS(A,C +1) = HS(A,C):SN$(A,C +1) = SN$(A,C):SD$(A,C +1) = SD$(A,C)
  295. 31570  NEXT C:HS(A,B) = SC:SN$(A,B) = SN$:SD$(A,B) = SD$: RETURN 
  296. 32000  REM  DISPLAY HI SCORES
  297. 32005  INVERSE : VTAB 2: HTAB 1: PRINT "CALC-MAN VERSION 1.3 - BY DAN TOBIAS "
  298. 32010  VTAB 4: HTAB 1: CALL  -958
  299. 32015  INVERSE : PRINT "                                        ": NORMAL 
  300. 32020  PRINT 
  301. 32030  PRINT "HIGH SCORES FOR CURRENT RUN:"
  302. 32040  PRINT 
  303. 32050  FOR A = 1 TO 10
  304. 32055  IF HS(1,A) = 0  THEN  PRINT : GOTO 32070
  305. 32060  PRINT " ";A; TAB( 5);HS(1,A); TAB( 15);SN$(1,A); TAB( 32);SD$(1,A)
  306. 32070  NEXT A
  307. 32075  PRINT : PRINT "HIT ANY KEY FOR ALLTIME LIST. ";: GET I$
  308. 32077  VTAB 5: HTAB 1: CALL  -958: PRINT : PRINT 
  309. 32080  PRINT "ALL-TIME HIGH SCORES FOR THIS DISK:"
  310. 32085  PRINT 
  311. 32090  FOR A = 1 TO 10
  312. 32095  IF HS(0,A) = 0  THEN  PRINT : GOTO 32120
  313. 32100  PRINT " ";A; TAB( 5);HS(0,A); TAB( 15);SN$(0,A); TAB( 32);SD$(0,A)
  314. 32120  NEXT A
  315. 32125  PRINT 
  316. 32130  PRINT "P=PLAY  Q=QUIT  H=RE-DISPLAY HI SCORES ";
  317. 32140  REM 
  318. 32150  GET I$: IF I$ = "P"  THEN  HOME : PRINT "CM": GOTO 20
  319. 32160  IF I$ = "Q"  THEN 33000
  320. 32165  IF I$ = "H"  THEN 32000
  321. 32170  PRINT "<CTRL-G>";: GOTO 32140
  322. 33000  REM  EXIT
  323. 33005  HOME : PRINT : PRINT "SAVING HI SCORES TO DISK."
  324. 33010  ONERR  GOTO 33100
  325. 33015  PRINT 
  326. 33020  PRINT D$"OPEN CALC-MAN.HI.SCORES": PRINT D$"WRITE CALC-MAN.HI.SCORES"
  327. 33030  FOR A = 1 TO 10: PRINT HS(0,A): PRINT  CHR$(34)SN$(0,A): PRINT  CHR$(34)SD$(0,A): NEXT A
  328. 33035  PRINT D$"CLOSE"
  329. 33040  POKE 216,0: HOME : PRINT : PRINT  CHR$(4)"RUN KICK.IT.OFF"
  330. 33100  REM  ONERR
  331. 33105  CALL 789
  332. 33107  PRINT D$"CLOSE"
  333. 33110  HOME : PRINT 
  334. 33120  PRINT "DISK ERROR #" PEEK(222)"<CTRL-G>"
  335. 33130  PRINT : PRINT "CHECK TO SEE IF: "
  336. 33140  PRINT "  THERE IS A DISK IN THE DRIVE": PRINT "  THE DRIVE DOOR IS CLOSED": PRINT "  THE DISK IS A DOS 3.3 DISK"
  337. 33150  PRINT "  DISK IS NOT WRITE-PROTECTED OR           COPY-PROTECTED"
  338. 33160  PRINT "OR ANY OTHER PROBLEMS."
  339. 33170  PRINT : PRINT "HIT ANY KEY TO TRY AGAIN. ";: GET I$: PRINT : GOTO 33000